# 胡子健天下第一
# 毋庸置疑
# 开发时间： 2021/1/28 11:40
#数据类型
#常用的数据类型：
#int，整数 如：98
#float，单精度浮点数 如：3.14
#bool，整数 如：ture，false
#str，字符串类型 如：‘博观而约取，厚积而薄发’

#整数类型：可以表示正数，负数，0
print('十进制',520)
print('二进制',0b00101101)
print('八进制',0o176)
print('十六进制',0x1) #0b为二进制，0o为八进制，0x为十六进制

#浮点数
n1=1.1
n2=2.2
print(n1+n2) #浮点数可能不精确，因为在存储时使用的是IEEE标准，有23位用于表示尾数，联系所学的计算机组成原理、
#解决方法 导入模块decimal
from decimal import Decimal
print(Decimal (n1)+ Decimal(n2)) #这里为啥会是这样？
print(Decimal ('1.1')+ Decimal ('2.2'))
#decimal 的使用
#定点数传入字符串做计算
d3 = Decimal("0.1") + Decimal("0.2")
print(d3)

d1 = Decimal(0.1) + Decimal(0.2)
print(d1)
# 0.3000000000000000166533453694

d2 = Decimal.from_float(0.1) + Decimal.from_float(0.2)
print(d2)
# 0.3000000000000000166533453694

# 格式化
print(d1.quantize(Decimal("0.00")))  # 0.30
print(d2.quantize(Decimal("0.00")))  # 0.30

import decimal
decimal.Decimal(0.1) + decimal.Decimal(0.2)
print[17]: Decimal('0.3000000000000000166533453694')

# 设置精度
decimal.getcontext().prec = 6

decimal.Decimal(0.1) + decimal.Decimal(0.2)
print[20]: Decimal('0.300000')

#bool类型的使用
f1=True
f2=False
print(f1) #输出为Ture，如果要输出为1咋办
print(f1,type(f1))
print(f2,type(f2))
print(f1+1) #输出为2，所以true的值为1

#字符串
str1='博观而约取，厚积而薄发'
str2="博观而约取，厚积而薄发"
str3="""博观而约取，                   
厚积而薄发"""  #三引号可以换行
str4='''博观而约取，
厚积而薄发'''
print(str1,type(str1))
print(str2,type(str2))
print(str3,type(str3))
print(str4,type(str4))